package com.icetech.eom.service.tx;

import com.baomidou.mybatisplus.extension.service.IService;
import com.github.pagehelper.PageInfo;
import com.icetech.eom.domain.sys.User;
import com.icetech.eom.domain.tx.dto.UserDto;
import org.apache.poi.ss.usermodel.Workbook;

import java.util.List;

/**
 * <p>
 *  服务类
 * </p>
 *
 * @author wangzw
 * @since 2018-11-12
 */
public interface IUserService extends IService<User> {

    /**
     * 获取用户分页信息
     * @param searchKey
     * @param page
     * @param pageSize
     * @param userType
     * @return
     */
    PageInfo<UserDto> selectByPage(String searchKey, Integer page, Integer pageSize, Integer userType,Long orgId);

    /**
     * 导出用户
     * @param searchKey
     * @param userType
     * @return
     */
    Workbook exportExcel(String searchKey, Integer userType,Long orgId);

    /**
     * 根据用户名称获取用户
     * @param username
     * @return
     */
    User findByUsername(String username);

    /**
     * 获取登录平台的用户
     * @param username
     * @return
     */
    User findLoginByUsername(String username);

    /**
     * 获取登录客户端的用户
     * @param username
     * @return
     */
    User findClientByUsername(String username);

    /**
     * 获取开sdk端用户信息
     * @param username
     * @return
     */
    User findDeveloperByName(String username);

    /**
     * 保存用户和角色的关联信息
     * @param user
     * @param roleIds
     * @return
     */
    boolean saveUserAndRole(User user, List<Long> roleIds);




    /**
     * 获取所有的开发者信息
     * @return
     */
    List<User> findAllDeveloper();

    /**
     * 获取开发者下的操作者
     * @param devUserId
     * @return
     */
    List<User> getOperatersByDev(Long devUserId);
}
